﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once

#include <stdint.h>

namespace gfam
{
    /// \brief 市政连接件类型
    enum class GccpConnectorType : int32_t
    {
        UndefinedConnectorType = -1,    ///< 未定义连接件类型
        WaterPipe = 1,                  ///< 水管
        WirePipe = 2,                   ///< 线管
        Electrical = 4,                 ///< 电气
        BridgeWetJoint = 5,             ///< 桥梁湿接缝
        MunicipalConnector2d = 7        ///< 市政二维连接点
    };

    /// \brief 市政连接点形状
    enum class GccpConnectorShapType : int32_t
    {
        UndefinedShapType = -1,     ///< 未定义形状
        Circle = 0                  ///< 圆形
    };

    /// \brief 市政连接点系统类型
    enum class GccpConnectorSystemType : int32_t
    {
        UndefinedSystemType = 0,        ///< 未定义的系统类型
        WaterSupplySystem = 1,          ///< 给水系统
        RainwaterSystem = 2,            ///< 雨水系统
        SewageSystem = 3,               ///< 污水系统
        GasSystem = 4,                  ///< 燃气系统
        HeatingSystem = 5,              ///< 热力系统
        PowerSystem = 6,                ///< 动力系统
        ElectricPowerSystem = 7,        ///< 电力系统
        TelecomSystem = 8,              ///< 电信系统
        TelevisionSystem = 9,           ///< 电视系统

        SystemTypeCount = 10,           ///< 计数用
    };

    /// \brief 市政连接件连接方式类型
    enum class GccpConnectionType : int32_t
    {
        UndefinedConnectionType = -1,   ///< 未定义的连接类型
        NoConnector = 0,                ///< 无连接
        Flanged = 2,                    ///< 法兰连接
        WeldedButt = 4,                 ///< 对焊连接
        Socket = 6,                     ///< 承插连接
        SocketMale = 6,                 ///< 承插连接(插口)
        SocketFemale = 7,               ///< 承插连接(承口)
        Threaded = 8,                   ///< 螺纹连接
        ThreadedMale = 8,               ///< 螺纹连接(外螺纹)
        ThreadedFemale = 9,             ///< 螺纹连接(内螺纹)
        Grooved = 10,                   ///< 沟槽连接
        Hotmelt = 12,                   ///< 热熔连接
        Glued = 14,                     ///< 胶粘连接
    };

    /// \brief 流向类型
    enum class GccpFlowDirectionType : int32_t
    {
        Bidirectional = 0,               ///< 双向
        In = 1,                          ///< 进
        Out = 2                          ///< 出
    };

    /// \brief 桥梁湿接缝连接件类型
    enum class BridgeWetJointType : int32_t
    {
        DeckWetJoint = 0,                ///< 桥面湿接缝
        BeamWetJoint = 1,                ///< 桥梁湿接缝
        DiaphragmWetJoint = 2,           ///< 横隔板湿接缝
        OtherWetJoint = 3                ///< 其他湿接缝
    };

    /// \brief 桥梁湿接缝连接件位置
    enum class BridgeWetJointPosition : int32_t
    {
        Left = 0,                        ///< 左侧
        Right = 1                        ///< 右侧
    };
}

